home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compute! Gazette 1984 July
/
1984-07.d64
/
bonk barrels_64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-09-20
|
4KB
|
121 lines
100 print"[147][159] redefining character set"
110 goto390
120 rem man jumps
130 pokee%,39
140 for x=1toz%:gosub250:if peek(b%(x))>36andpeek(b%(x))<40 then910
145 if peek(b%(x)+d(x))>36andpeek(b%(x)+d(x))<40then910
147 if peek(b%(x)-1)>36andpeek(b%(x)-1)<40then910
150 gosub 310:nextx
160 pokee%,37
170 pokes,p
180 p=p+3
190 pokee%,38
200 forx=1toz%:gosub250:if peek(b%(x))>36andpeek(b%(x))<40 then910
203 if peek(b%(x)+d(x))>36andpeek(b%(x)+d(x))<40then910
205 if peek(b%(x)-1)>36andpeek(b%(x)-1)<40then910
210 gosub 310:nextx
220 ifpeek(e%-40)=llthen 910
230 pokee%,32:e%=e%-40:pokee%,38:pokes,0:pokee%,32:e%=e%-40:pokee%,38:return
240 rem move barrels
250 pokes+1,o
260 pokeb%(x),c
270 ifpeek(b%(x)+i%)=wthenb%(x)=b%(x)+d(x)
280 ifpeek(b%(x))=wthenb%(x)=b%(x)-t%*d(x)
290 ifpeek(b%(x)+i%)<>wthenb%(x)=b%(x)+i%
300 return
310 pokeb%(x),ll
320 ifb%(x)>jthengosub350
330 return
340 rem reset barrels
350 forx=1toz%:pokeb%(x),c:b%(x)=sr+int(rnd(x)*t%):nextx
360 rem score
370 print"score [157][157][157][157]"sc;" [157][157][157][157][157][157]";
380 forq=3toa+1step-1:print"[146]%";:next:print"":return
390 poke53281,0:poke53280,6
400 poke56,48:clr
410 poke56334,peek(56334)and254:poke1,peek(1)and251
420 bl$="[158] "
430 al$="[146][156]$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
440 fori=0to1023:pokei+12288,peek(i+53248):pokei+13312,peek(i+53248):next
450 poke1,peek(1)or4
460 poke56334,peek(56334)or1
470 poke53272,(peek(53272)and240)+12
480 fori=12544to12544+8*8-1:reada:pokei,a:next:gosub1080
490 data0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,108,206,174,234,230,108,56:rem barrel
500 data56,108,246,250,134,222,108,56:rem barrel
510 data255,153,189,153,255,0,0,0:rem beam
520 data56,56,16,56,84,16,56,40:rem man normal
530 data186,186,84,56,16,16,56,40,0,0,0,56,56,16,124,170
540 sr=1025:k=55296-sr+1
550 j=sr+820:v=54296:s=54272:fori=stov:pokei,0:nexti
560 pokev,15:pokes+5,130:pokes+6,72
570 sr=1025:k=55296-sr+1
580 print"[147]":a=0:sc=0:z%=4
590 rem set up screen
600 print"[147]";:bl=80
610 fori=1to10:printbl$;al$;:next:printbl$;bl$;""
620 x=sr+39:pokes+4,33:pokes+24,15
630 forb=1tobl
640 r=int(rnd(x)*908)
650 pokex+r,32:pokex+r+k,7:pokes+1,b+10:next:pokes+4,0
660 pokes+4,17:forg=-1to20
670 pokex+g*40,36:pokes+1,50+(g*2):pokex+g*40+k,5
680 pokex+39+(g*40),36:pokes+1,0:pokex+39+(g*40)+k,5:nextg:pokes+4,0
690 rem prep for loop
700 e%=j:d(1)=1:d(2)=-1:d(3)=1:d(4)=-1:l=1:lm=10:rm=18:up=5:bm=4:o=0
710 w=36:c=32:kb=197:t%=38:i%=40:ll=34:d=37:z=245:p=128:tt%=1:th%=3:gosub350
720 rem main game loop
730 for x=1toz%:gosub250:ifpeek(b%(x))>36andpeek(b%(x))<40 then910
735 if peek(b%(x)+d(x))>36andpeek(b%(x)+d(x))<40then910
737 rem if peek(b%(x)-1)>36andpeek(b%(x)-1)<40then910
740 gosub 310:nextx
750 ifpeek(e%)=llthene%=e%+40:pokee%+k,7:pokee%+i%,36:pokee%+i%+k,4:goto910
760 ifpeek(e%-i%)=llthen910
770 ifpeek(e%+i%)=llthenpokee%,c:e%=e%+80:goto910
780 ifll=34thenll=35:goto800
790 ll=34
800 pokee%,c
810 ifpeek(kb)=lmthenifpeek(e%-l)<>wthene%=e%-l:pokee%,d:yg=-2:goto850
820 ifpeek(kb)=rmthenifpeek(e%+l)<>wthene%=e%+l:pokee%,d:yg=2:goto850
830 ifpeek(kb)=bmthenifpeek(e%-i%)=wthenpokee%-i%,c:sc=sc-5:p=p-10
840 ifpeek(kb)=upthenifpeek(e%-i%)<>wthengosub130:sc=sc+l+l:p=p+3:pokee%,d
850 ifp>zthenp=128
860 pokee%,d:pokes+4,17:pokes+1,40
870 if e%<srthene%=j:tt%=tt%+l:gosub370:ifsc>35thenz%=rnd(x)*4+1
880 iftt%>th%thengoto600
890 goto730
900 rem lose man
910 pokes+4,129:n=15:pokes,39:pokes+1,09:forq=1to4:pokeb%(q),32:next
920 pokee%,38:pokee%-40,34:gosub1190:pokee%,37:gosub1190:pokee%,39:gosub1190
930 pokee%-40,194:pokee%,35:gosub1190:pokee%+1,173:pokee%-1,173:pokee%+40,194
940 pokee%-39,206:pokee%-41,205
950 pokee%+41,205:pokee%+39,206:gosub1190
960 pokee%-120,174:pokee%-2,174:pokee%+2,174:pokee%+120,174:gosub1190
970 pokee%-78,174
980 pokee%-82,174:pokee%+78,174:pokee%+82,174:gosub1190
990 sc=sc-8:pokes+4,128:a=a+1:gosub370
1000 tt%=1:ifa<3goto600
1010 print"[147]";
1015 poke198,0:print" game over"
1018 print" score= ";sc
1020 print" hit space bar to play again"
1030 print" any other key to end"
1040 getyy$:ifyy$=""then1040
1050 if yy$<>" "then print"[147]":end
1060 goto580
1070 rem
1080 print"[147]":printtab(11)"*instructions*":print
1090 printtab(9)"a[146] moves man left":printtab(9)"d[146] moves man right"
1100 print:printtab(9)"f3[146] moves man up 1 level"
1110 printtab(9)"f1[146] will blast space above"
1120 print:printtab(9)" **points**"
1130 print:printtab(9)"2 for each up":printtab(8)"-5 for using blast"
1140 printtab(8)"-8 for getting hit"
1150 print"":printtab(8)" press space bar[159]"
1160 getxx$:ifxx$=""then1160
1170 return
1180 rem time and sound for lose man rountine
1190 n=n-2:ifn<0thenn=0
1200 ifpeek(e%)=38orpeek(e%)=39thenforq=1to50:next
1210 forq=1to25:next:return